Devlog Update 77

Art Stream

Usually we’re doing a live stream at the end of the month, but due to the holidays we’re shifting it to January this time. Same for the next Pre-Alpha update.

Devlog

I made a simple change this week that improves the staff/guest AI quite a bit and helps with performance as well.

Imagine a worker who’s tasked with grabbing a delivery crate from the stack and bringing it to a shop. First of all the worker needs to figure out how to get to the delivery crate stack, if he even can get there at all. This is done using a pathfinding algorithm. Once the worker reached the crate and picked it up he needs to figure out how to get to the shop, again using a pathfinding algorithm.

But what if there is no path from the position of the crate to the shop? The worker unnecessarily went all the way to pick up the crate and wasted time that he could have used to work on something else. It would be better if the game checked whether the crate can be delivered before the worker goes to get it. Pathfinding is relatively fast, but doing a lot of it would quickly get too expensive. So this needs to be done slightly differently!

The solution is that the game simply knows at all times which paths are interconnected. This can be calculated very fast (and only needs to be recalculated if a path gets added/removed) using Flood fill, so now we can essentially check for free whether the crate and shop are reachable before doing the more expensive pathfinding calculation for how to get to these locations.

Here’s a debug view of this connectivity information:

It visualizes which paths are interconnected, so for example any path tiles with a dark green cube can only be reached from other path tiles with a dark green cube. If you’re on a path tile with a dark green cube you can’t reach tiles with a blue cube.

The game keeps separate versions of this for the guests and employees, since guests can additionally use rides to move around the park.

This can be used in a couple of other scenarios too: for example employees who are assigned to a zone will now immediately return to that zone if they’re outside of it (e.g. Janitors who transported a trash bag out of the park). It was previously too expensive to find a reachable path tile within the zone.

Devlog Update 76

You might have seen a couple of bigger Parkitect videos this week, e.g. by Nerd³, Olli43 and MonotoneTim - it’s been a pretty great week (with a lot of time spent on answering emails), but we still got a few things done.

We added an Inverted Coaster!

And here it is in action:

And we added some ride music:

If you’re familiar with Gordons previous work you might recognize some of these titles…

There are only these four short calliope tracks so far that we’ll probably combine into one longer piece. More to come over time!

Update 75

It’s been a bit of a slow week, with a mix of smaller stuff and some non-development related tasks getting done.

The color picker has been completed for now:

Recoloring objects received a quick transition effect:

Gordon put sounds for the Bobsled Coaster and Vertical Drop Coaster into the game.

We’re testing some new rain:

(The animation is very fluent in the game, choppiness is due to GIF)

Guests don’t have to wait until their coaster car is at the front of the station anymore before they can leave. This allowed us to give rides a “wait until full” setting, which also means that the Alpine Coaster cars won’t run empty anymore.

And you can let your guests take a bath now:

We don’t show stuff that doesn’t make it into the game here very often, but here’s a little something - we thought it would be fun if a claw from a claw crane machine grabbed the guest when you pick him up, including rope physics:

It didn’t work as well as expected. The swinging made putting the guest down exactly where you wanted pretty annoying, so it got scrapped.

Update 74

Improvements for the color picker have been on our list for a long time and it gets requested a lot lately, so we started working on that. We still need to clean it up and make it look nice, so here’s just a screenshot of the current work-in-progress state:

There are new tools for picking colors from existing objects and recoloring them, and palettes can be saved.

Objects can have varying amounts of custom colors (1-4), which made designing the user experience for this window surprisingly difficult. I’m not entirely satisfied with how it currently works, but we got some ideas how to improve it. A couple more days of thinking and work and it should be fine :)

As a nice side-effect, with a little extra work we could also make these tools work for changing the colors of individual track segments and coaster cars: